home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
usenet
/
sources
/
volume91
/
utilitys
/
less_14z
/
part05
< prev
next >
Wrap
Internet Message Format
|
1991-07-08
|
58KB
Path: news.larc.nasa.gov!amiga-request
From: amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
Subject: v91i131: Less 1.4Z - text pager, Part05/07
Reply-To: rayz@altair.csustan.edu (R. L. Zarling)
Newsgroups: comp.sources.amiga
Message-ID: <comp.sources.amiga.v91i131@ab20.larc.nasa.gov>
References: <comp.sources.amiga.v91i127@ab20.larc.nasa.gov>
Date: 04 Jul 91 17:28:18 GMT
Approved: tadguy@uunet.UU.NET (Tad Guy)
X-Mail-Submissions-To: amiga@uunet.uu.net
X-Post-Discussions-To: comp.sys.amiga.misc
Submitted-by: rayz@altair.csustan.edu (R. L. Zarling)
Posting-number: Volume 91, Issue 131
Archive-name: utilities/less-1.4z/part05
#!/bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 5 (of 7)."
# Contents: Less1.4Z/Less.doc.uu Less1.4Z/src/command.c
# Wrapped by tadguy@ab20 on Thu Jul 4 13:28:16 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Less1.4Z/Less.doc.uu' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'Less1.4Z/Less.doc.uu'\"
else
echo shar: Extracting \"'Less1.4Z/Less.doc.uu'\" \(29005 characters\)
sed "s/^X//" >'Less1.4Z/Less.doc.uu' <<'END_OF_FILE'
Xbegin 666 Less.doc
XM"@H*"@H*7PAL7PAE7PAS7PAS("T@7PAO7PAP7PAP7PAO7PAS7PAI7PAT7PAEG
XM(%\(;U\(9B!?"&U?"&]?"')?"&4*"E9E<G-I;VX@,2XT6B!*=6YE(#$T+"`QM
XM.3DQ"@I697)S:6]N<R!S:6YC92!!;6EG82!V97)S:6]N(#$N,UH@87)E('-U3
XM<'!O<G1E9"!B>0H*4F%Y;6]N9"!,+B!:87)L:6YG+`I$97!A<G1M96YT(&]FW
XM($-O;7!U=&5R(%-C:65N8V4*0V%L:68N(%-T871E(%5N:78N(%-T86YI<VQA0
XM=7,*5'5R;&]C:RP@0T$@.34S.#`*"G)A>7I`8W-U<W1A;BY%1%4*"@I?"&Q?&
XM"&5?"'-?"',@6RU?"&1?"'-?"'1?"'=?"&-?"$-?"&5?"$5?"&U?"$U?"'%?2
XM"%%?"'5?"%5=(%LM7PAH7PA.72!;+6);9G!=7PA.72!;+7A?"$Y=(%LM6WI=-
XM7PA.70H@("`@(%LM7PA06U\(;5\(35U?"'-?"'1?"')?"&E?"&Y?"&==(%LK_
XM7PAC7PAM7PAD72`@6U\(9E\(:5\(;%\(95\(;E\(85\(;5\(95TN+BX*"E\(\
XM3%\(95\(<U\(<R!I<R!A('!R;V=R86T@<VEM:6QA<B!T;R`@7PAM7PAO7PARX
XM7PAE("`H,2DL("!B=70@('=H:6-H("!A;&QO=W,*8F%C:W=A<F1S("!M;W9E=
XM;65N="!I;B!T:&4@9FEL92!A<R!W96QL(&%S(&9O<G=A<F0@;6]V96UE;G0N6
XM"D%L<V\L(%\(;%\(95\(<U\(<R!D;V5S(&YO="!H879E("!T;R`@<F5A9"`@W
XM=&AE("!E;G1I<F4@(&EN<'5T("!F:6QE"F)E9F]R92!S=&%R=&EN9RP@<V\@O
XM=VET:"!L87)G92!I;G!U="!F:6QE<R!I="!S=&%R=',@=7`@9F%S+0IT97(@I
XM=&AA;B!M;W-T('1E>'0@961I=&]R<RX*"B`@("`@0V]M;6%N9',@87)E(&)A<
XM<V5D(&]N(%\(;5\(;U\(<E\(92P@(%\(=E\(:2!A;F0@7PAE7PAM7PAA7PACF
XM7PAS+B`@($-O;6UA;F1S("!M87D*8F4@('!R96-E961E9"`@8GD@82!D96-ID
XM;6%L(&YU;6)E<BP@8V%L;&5D($X@:6X@=&AE(&1E<V-R:7`M"G1I;VYS(&)EO
XM;&]W+B`@5&AE(&YU;6)E<B!I<R!U<V5D(&)Y('-O;64@8V]M;6%N9',L(&%SX
XM("!I;F1I+0IC871E9"X*"@I?"$E?"&X@7PAT7PAH7PAE(%\(9E\(;U\(;%\(`
XM;%\(;U\(=U\(:5\(;E\(9R!?"&1?"&5?"'-?"&-?"')?"&E?"'!?"'1?"&E?X
XM"&]?"&Y?"',L(%Y?"%@@7PAM7PAE7PAA7PAN7PAS(%\(8U\(;U\(;E\(=%\(=
XM<E\(;U\(;"U?"%@N"@I((&]R($AE;'`@:V5Y"B`@("`@2&5L<#H@9&ES<&QAN
XM>2!A('-U;6UA<GD@;V8@=&AE<V4@8V]M;6%N9',N("!)9B!Y;W4@9F]R+0H@@
XM("`@(&=E="!A;&P@=&AE(&]T:&5R(&-O;6UA;F1S+"!R96UE;6)E<B!T:&ESA
XM(&]N92X*"@I34$%#10H@("`@(%-C<F]L;"!F;W)W87)D($X@;&EN97,L(&1E&
XM9F%U;'0@;VYE('=I;F1O=R`H<V5E("!O<'1I;VX*("`@("`M>B!B96QO=RDNU
XM("!)9B!.(&ES(&UO<F4@=&AA;B!T:&4@<V-R965N('-I>F4L(&]N;'D@=&AE"
XM"B`@("`@9FEN86P@<V-R965N9G5L(&ES(&1I<W!L87EE9"X*"@IF(&]R(%Y&M
XM"B`@("`@4V%M92!A<R!34$%#12X*"@I>5@H@("`@(%-A;64@87,@4U!!0T4N.
XM"@H*8B!O<B!>0@H@("`@(%-C<F]L;"!B86-K=V%R9"!.(&QI;F5S+"!D969A^
XM=6QT(&]N92!W:6YD;W<@*'-E92!O<'1I;VX*("`@("`M>B!B96QO=RDN("!)7
XM9B!.(&ES(&UO<F4@=&AA;B!T:&4@<V-R965N('-I>F4L(&]N;'D@=&AE"B`@#
XM("`@9FEN86P@<V-R965N9G5L(&ES(&1I<W!L87EE9"X*"@I215154DX*("`@"
XM("!38W)O;&P@9F]R=V%R9"!.(&QI;F5S+"!D969A=6QT(#$N("!4:&4@96YTE
XM:7)E($X@;&EN97,*("`@("!A<F4@9&ES<&QA>65D+"!E=F5N(&EF($X@:7,@=
XM;6]R92!T:&%N('1H92!S8W)E96X@<VEZ92X*"@IE(&]R(%Y%"B`@("`@4V%M:
XM92!A<R!215154DXN"@I>3@H@("`@(%-A;64@87,@4D5455).+@H*"FH@;W(@"
XM7DH*("`@("!!;'-O('1H92!S86UE(&%S(%)%5%523BX*"GD@;W(@7ED*("`@Y
XM("!38W)O;&P@8F%C:W=A<F0@3B!L:6YE<RP@9&5F875L="`Q+B`@5&AE(&5N[
XM=&ER92!.(&QI;F5S"B`@("`@87)E(&1I<W!L87EE9"P@979E;B!I9B!.(&ESQ
XM(&UO<F4@=&AA;B!T:&4@<V-R965N('-I>F4N"@IK(&]R(%Y+"B`@("`@4V%M\
XM92!A<R!Y+@H*7E`*("`@("!386UE(&%S('DN"@H*9"!O<B!>1`H@("`@(%-CR
XM<F]L;"!F;W)W87)D($X@;&EN97,L(&1E9F%U;'0@:&%L9B!O9B!T:&4@<V-RA
XM965N+B`@268*("`@("!.(&ES('-P96-I9FEE9"P@:70@8F5C;VUE<R!T:&4@]
XM;F5W(&1E9F%U;'0@9F]R('-U8G-E<75E;G0*("`@("!D(&%N9"!U(&-O;6UA(
XM;F1S+B`@5&AE(&AA;&8M<V-R965N(&1E9F%U;'0@:7,@<V5T(&%G86EN"B`@3
XM("`@=VAE;F5V97(@=&AE('-C<F5E;B!I<R!R97-I>F5D+@H*"G4@;W(@7E4*V
XM("`@("!38W)O;&P@8F%C:W=A<F0@3B!L:6YE<RP@9&5F875L="!H86QF(&]FX
XM('1H92!S8W)E96XN("!)9@H@("`@($X@:7,@<W!E8VEF:65D+"!I="!B96-O`
XM;65S('1H92!N97<@9&5F875L="!F;W(@<W5B<V5Q=65N=`H@("`@(&0@86YD,
XM('4@8V]M;6%N9',N("!4:&4@:&%L9BUS8W)E96X@9&5F875L="!I<R!S970@+
XM86=A:6X*("`@("!W:&5N979E<B!T:&4@<V-R965N(&ES(')E<VEZ960N"@H*M
XM<B!O<B!>4B!O<B!>3`H@("`@(%)E<&%I;G0@=&AE('-C<F5E;BX*"@I2("`@*
XM(%)E<&%I;G0@=&AE("!S8W)E96XL("!D:7-C87)D:6YG("!A;GD@(&)U9F9EH
XM<F5D("!I;G!U="X*("`@("!5<V5F=6P@(&EF("!T:&4@(&9I;&4@(&ES("!CF
XM:&%N9VEN9R`@=VAI;&4@(&ET(&ES(&)E:6YG"B`@("`@=FEE=V5D+@H*"F<@T
XM("`@1V\@=&\@;&EN92!.(&EN("!T:&4@(&9I;&4L("!D969A=6QT("`Q("`H1
XM8F5G:6YN:6YG("!O9@H@("`@(&9I;&4I+B`@*%=A<FYI;F<Z('1H:7,@;6%Y>
XM(&)E('-L;W<@:68@3B!I<R!L87)G92XI"@H\("`@(%-A;64@87,@9RX*"@I'+
XM("`@($=O('1O(&QI;F4@3B!I;B!T:&4@9FEL92P@9&5F875L="!T:&4@96YDP
XM(&]F('1H92`@9FEL92X*("`@("`H5V%R;FEN9SH@('1H:7,@(&UA>2`@8F4@L
XM<VQO=R!I9B!S=&%N9&%R9"!I;G!U="P@<F%T:&5R"B`@("`@=&AA;B!A(&9I,
XM;&4L(&ES(&)E:6YG(')E860N*0H*/B`@("!386UE(&%S($<N"@H*<"`@("!'G
XM;R!T;R!A('!O<VET:6]N($X@<&5R8V5N="!I;G1O('1H92!F:6QE+B`@3B!S1
XM:&]U;&0@(&)E"B`@("`@8F5T=V5E;B`P(&%N9"`Q,#`N("`H5&AI<R!I<R!P%
XM;W-S:6)L92!I9B!S=&%N9&%R9"!I;G!U=`H@("`@(&ES(&)E:6YG(')E860LT
XM(&)U="!O;FQY(&EF(%\(;%\(95\(<U\(<R!H87,@86QR96%D>2!R96%D('1O,
XM('1H90H@("`@(&5N9"`@;V8@('1H92`@9FEL92X@("!)="!I<R!A;'=A>7,@0
XM9F%S="P@8G5T(&YO="!A;'=A>7,*("`@("!U<V5F=6PN*0H*"B4@("`@4V%M@
XM92!A<R!P+@H*"FT@("`@1F]L;&]W960@8GD@86YY(&QO=V5R8V%S92`@;&5TK
XM=&5R+"`@;6%R:W,@('1H92`@8W5R<F5N=`H@("`@('!O<VET:6]N('=I=&@@T
XM=&AA="!L971T97(N"@H*)R`@("`H4VEN9VQE("!Q=6]T92XI("!&;VQL;W=E[
XM9"`@8GD@(&%N>2`@;&]W97)C87-E("!L971T97(L"B`@("`@<F5T=7)N<R`@%
XM=&\@('1H92`@<&]S:71I;VX@('=H:6-H('=A<R!P<F5V:6]U<VQY(&UA<FME)
XM9`H@("`@('=I=&@@=&AA="!L971T97(N("!&;VQL;W=E9"!B>2`@86YO=&AEO
XM<B`@<VEN9VQE("!Q=6]T92P*("`@("!R971U<FYS("!T;R!T:&4@<&]S=&EO-
XM;B!A="!W:&EC:"!T:&4@;&%S="`B;&%R9V4B(&UO=F4M"B`@("`@;65N="!C?
XM;VUM86YD('=A<R!E>&5C=71E9"X@($%L;"!M87)K<R!A<F4@;&]S="`@=VAEA
XM;B`@80H@("`@(&YE=R!F:6QE(&ES(&5X86UI;F5D+@H*"B]P871T97)N"B`@M
XM("`@4V5A<F-H(&9O<G=A<F0@:6X@=&AE(&9I;&4@9F]R('1H92!.+71H(&QI7
XM;F4@8V]N=&%I;FEN9PH@("`@('1H92`@<&%T=&5R;BX@($X@9&5F875L=',@:
XM=&\@,2X@(%1H92!P871T97)N(&ES(&$@<F5G=2T*("`@("!L87(@97AP<F5S^
XM<VEO;BP@87,@<F5C;V=N:7IE9"!B>2!5;FEX(%\(95\(9"`H<V5E('1H90H@I
XM("`@('-E8W1I;VX@;VX@<F5G=6QA<B!E>'!R97-S:6]N<R!B96QO=RDN("!4+
XM:&4@<V5A<F-H('-T87)T<PH@("`@(&%T("!T:&4@('-E8V]N9"`@;&EN92!D,
XM:7-P;&%Y960@*&)U="!S964@=&AE("UT(&]P=&EO;BP*("`@("!W:&EC:"!C2
XM:&%N9V5S('1H:7,I+B`@268@=&AE('!A='1E<FX@:7,@;VUI='1E9"P@<V5AJ
XM<F-H"B`@("`@9F]R(&%N;W1H97(@;V-C=7)A;F-E(&]F('1H92!M;W-T(')E"
XM8V5N="!P871T97)N+@H*7E,@("!386UE(&%S("\N"@H*/W!A='1E<FX*("`@7
XM("!396%R8V@@8F%C:W=A<F0@:6X@=&AE(&9I;&4@9F]R('1H92!.+71H(&QI!
XM;F4@(&-O;G1A:6XM"B`@("`@:6YG('1H92!P871T97)N+B`@5&AE('-E87)C0
XM:"!S=&%R=',@870@=&AE(&QI;F4@:6UM961I+0H@("`@(&%T96QY(&)E9F]R`
XM92!T:&4@=&]P(&QI;F4@9&ES<&QA>65D+B`@268@=&AE('!A='1E<FX@:7,*"
XM("`@("!O;6ET=&5D+"!S96%R8V@@9F]R(&%N;W1H97(@;V-C=7)A;F-E(&]F8
XM('1H92!M;W-T(')E8V5N=`H@("`@('!A='1E<FXN"@H*;B`@("!297!E870@(
XM<')E=FEO=7,@<V5A<F-H+"!F;W(@3BUT:"`@;&EN92`@8V]N=&%I;FEN9R`@O
XM=&AE"B`@("`@;&%S="!P871T97)N+"!S96%R8VAI;F<@:6X@=&AE('-A;64@[
XM9&ER96-T:6]N(&%S('1H90H@("`@('!R979I;W5S('-E87)C:"X*"@I%("`@$
XM($5X86UI;F4@82!N97<@9FEL92X@($EF('1H92!F:6QE;F%M92`@:7,@(&UIC
XM<W-I;F<L("!T:&4*("`@("`B8W5R<F5N="(@(&9I;&4@("AS964@('1H92!.V
XM(&%N9"!0(&-O;6UA;F1S(&)E;&]W*2!F<F]M"B`@("`@=&AE(&QI<W0@;V8@'
XM9FEL97,@:6X@=&AE(&-O;6UA;F0@;&EN92`@:7,@(')E+65X86UI;F5D+@H@U
XM("`@($EF("!T:&4@(&9I;&5N86UE("!I<R`@82!P;W5N9"!S:6=N("@C*2P@E
XM=&AE('!R979I;W5S;'D*("`@("!E>&%M:6YE9"!F:6QE(&ES(')E+65X86UIL
XM;F5D("AO;F4@;&5V96P@;V8@8F%C:W5P(&]N;'DI+@H*"DX@("`@17AA;6EN+
XM92!T:&4@;F5X="!F:6QE("AF<F]M('1H92!L:7-T(&]F(&9I;&5S(&=I=F5N_
XM("!I;@H@("`@('1H92`@8V]M;6%N9"!L:6YE*2X@($EF(&$@;G5M8F5R($X@G
XM:7,@<W!E8VEF:65D("AN;W0@=&\*("`@("!B92!C;VYF=7-E9"!W:71H('1H$
XM92!C;VUM86YD($XI+"!T:&4@3BUT:"!N97AT(&9I;&4@(&ES"B`@("`@97AAB
XM;6EN960N"@H*4"`@("!%>&%M:6YE('1H92!P<F5V:6]U<R!F:6QE+B`@268@K
XM82!N=6UB97(@3B!I<R!S<&5C:69I960L"B`@("`@=&AE($XM=&@@<')E=FEO#
XM=7,@9FEL92!I<R!E>&%M:6YE9"X*"@H](&]R(%Y'"B`@("`@4')I;G1S('-O*
XM;64@:6YF;W)M871I;VX@86)O=70@=&AE("!F:6QE("!B96EN9R`@=FEE=V5D=
XM+`H@("`@(&EN8VQU9&EN9R`@:71S("!N86UE("!A;F0@=&AE(&)Y=&4@;V9F'
XM<V5T(&]F('1H92!B;W1T;VT*("`@("!L:6YE(&)E:6YG(&1I<W!L87EE9"X@[
XM($EF('!O<W-I8FQE+"!I="!A;'-O('!R:6YT<R`@=&AE"B`@("`@;&5N9W1HU
XM("!O9B`@=&AE("!F:6QE(&%N9"!T:&4@<&5R8V5N="!O9B!T:&4@9FEL92!A2
XM8F]V90H@("`@('1H92!L87-T(&1I<W!L87EE9"!L:6YE+@H*"BT@("`@1F]LL
XM;&]W960@8GD@;VYE(&]F('1H92!C;VUM86YD(&QI;F4@;W!T:6]N(&QE='1E,
XM<G,@*'-E90H@("`@(&)E;&]W*2P@=&AI<R!W:6QL('1O9V=L92!T:&4@<V5TA
XM=&EN9R!O9B!T:&%T(&]P=&EO;@H@("`@(&%N9"]O<B!P<FEN="!A(&UE<W-AE
XM9V4@9&5S8W)I8FEN9R!T:&4@;F5W('-E='1I;F<N("!.;W0*("`@("!A;&P@1
XM;W!T:6]N<R!C86X@8F4@<V5T(&9R;VT@=VET:&EN('1H92!P<F]G<F%M.B`@K
XM8BP@4"P*("`@("!A;F0@=VEN9&]W('-I>FEN9R!A<F4@8V]M;6%N9"UL:6YE?
XM(&]N;'D@;W!T:6]N<RX*"BMC;60@0V%U<V5S('1H92!S<&5C:69I960@8VUDT
XM('1O(&)E(&5X96-U=&5D(&5A8V@@=&EM92!A(&YE=PH@("`@(&9I;&4@(&ESR
XM(&5X86UI;F5D+B`@1F]R(&5X86UP;&4L("M'(&-A=7-E<R!?"&Q?"&5?"'-?F
XM"',@=&\@:6YI+0H@("`@('1I86QL>2!D:7-P;&%Y(&5A8V@@9FEL92!S=&%RE
XM=&EN9R`@870@('1H92`@96YD("!R871H97(*("`@("!T:&%N('1H92!B96=IR
XM;FYI;F<N"@H*5B`@("!0<FEN=',@=&AE('9E<G-I;VX@;G5M8F5R(&]F(%\(H
XM;%\(95\(<U\(<R!B96EN9R!R=6XN"@H*<2`@("!%>&ET<R!?"&Q?"&5?"'-?(
XM"',N"@H*7PA#7PAO7PAM7PAM7PAA7PAN7PAD(%\(;%\(:5\(;E\(92!?"&]?0
XM"'!?"'1?"&E?"&]?"&Y?"',@7PAA7PAR7PAE(%\(9%\(95\(<U\(8U\(<E\(0
XM:5\(8E\(95\(9"!?"&)?"&5?"&Q?"&]?"'<N("!?"$U?"&]?"'-?"'0@7PAOH
XM7PAP7PAT7PAI7PAO7PAN7PAS("!?"&U?"&%?"'D*7PAB7PAE(%\(8U\(:%\("
XM85\(;E\(9U\(95\(9"!?"'=?"&A?"&E?"&Q?"&4@7PAL7PAE7PAS7PAS(&ES&
XM(')U;FYI;F<L('9I82!T:&4@(BTB(&-O;6UA;F0N"@H@("`@($]P=&EO;G,@,
XM87)E(&%L<V\@=&%K96X@9G)O;2`@=&AE("!E;G9I<F]N;65N="`@=F%R:6%BY
XM;&4*(DQ%4U,B+B`@($9O<B`@97AA;7!L92P@:68@>6]U(&QI:V4@=F5R>2!V0
XM97)B;W-E('!R;VUP=&EN9RP@=&\*879O:60@='EP:6YG(")L97-S("U-("XN6
XM+B(@96%C:"!T:6UE(%\(;%\(95\(<U\(<R`@:7,@(&EN=F]K960L("!Y;W4*B
XM;6EG:'0@=&5L;"!?"&-?"'-?"&@@;W(@=&AE($%M:6=A1$]3('-H96QL.@H**
XM<V5T96YV($Q%4U,@30H*;W(@:68@>6]U('5S92!?"%-?"$M?"'-?"&@Z"@I,V
XM15-3/4T[(&5X<&]R="!,15-3"@I4:&4@96YV:7)O;FUE;G0@=F%R:6%B;&4@9
XM:7,@<&%R<V5D(&)E9F]R92!T:&4@8V]M;6%N9"`@;&EN92P*<V\@(&-O;6UA[
XM;F0@;&EN92!O<'1I;VYS(&]V97)R:61E('1H92!,15-3(&5N=FER;VYM96YT3
XM('9A<FDM"F%B;&4N("!!(&1O;&QA<B!S:6=N("@D*2!M87D@8F4@=7-E9"!T#
XM;R!S:6=N86P@=&AE(&5N9"!O9B!A;@IO<'1I;VX@('-T<FEN9RX@("!4:&ES)
XM(&ES(&EM<&]R=&%N="!O;FQY(&9O<B!O<'1I;VYS(&QI:V4@+5`*=VAI8V@@.
XM=&%K92!A(&9O;&QO=VEN9R!S=')I;F<N"@I3;VUE(&]P=&EO;G,@:&%V92!VJ
XM86QU97,L('-O;64@87)E(#(M=V%Y('1O9V=L97,L(&%N9"!S;VUE(&%R90HS_
XM+7=A>2!T;V=G;&5S+B`@5&AE(#,M=V%Y(&]N97,@87)E(&AA;F1L960@8GD@K
XM=7-I;F<@8F]T:"!A;@IU<'!E<BUC87-E(&%N9"!A(&QO=V5R+6-A<V4@;W!TZ
XM:6]N(&YA;64N("!5<W5A;&QY+"!T:&4@=7!P97(M"F-A<V4@;W!T:6]N(&ES%
XM('1H92!M;W-T(&5X=')E;64L('1H92!L;W=E<BUC87-E('-E='1I;F<@:7,*A
XM;6]D97)A=&4L(&%N9"!N96ET:&5R(&ES(&QE87-T(&5X=')E;64N("!&;W(@C
XM:6YS=&%N8V4L('1H90HM;2!A;F0@+4T@;W!T:6]N<R!C;VYT<F]L('1H92!LM
XM96YG=&@@;V8@=&AE('!R;VUP="!L:6YE+B`@268*+4T@:7,@:6X@969F96-T7
XM+"!Y;W4@9V5T(&$@<F5L871I=F5L>2!L;VYG('!R;VUP="P@=VAI;&4@+6T*F
XM:7,@;75C:"!S:&]R=&5R+B`@268@;F5I=&AE<B`M;2!N;W(@+4T@:7,@<V5TG
XM+"!T:&4@<')O;7!T(&ES"F$@<VEN9VQE("(Z(B!C:&%R86-T97(@*'5N;&5SR
XM<R!Y;W4@<F5D969I;F4@;VYE(&]R(&UO<F4@;V8*=&AE<V4@=7-I;F<@+5`IL
XM+B`@5&\@8VAA;F=E(&$@,RUW87D@;W!T:6]N+"!U<V4@96ET:&5R("UX(&]R"
XM"BU8+"!W:&5R92!X(&ES('1H92!O<'1I;VX@;F%M92X@(%1Y<&EN9R`M>"!WJ
XM:6QL(&5S=&%B;&ES:"!T:&4*;6]D97)A=&4@8V%S92!I9B!I="!W87-N)W0@8
XM86QR96%D>2!S970@*&DN92X@96ET:&5R("U8(&]R"FYE:71H97(@=V%S(&ENB
XM(&5F9F5C="D@;W(@<V5T('1H92!L96%S="!E>'1R96UE("@B;F5I=&AE<B(I[
XM"F-H;VEC92!I9B!I="!W87,N("!3:6UI;&%R;'DL("U8('=O=6QD(&5S=&%B[
XM;&ES:"!T:&4@6"!O<'1I;VX*:68@:70@=V%S;B=T(&%L<F5A9'D@:6X@969F6
XM96-T.R!O=&AE<G=I<V4@(FYE:71H97(B+@H*+6(@("!.=6UE<FEC.R!S970@/
XM9G)O;2!C;VUM86YD(&QI;F4@;W(@96YV:7)O;FUE;G0@;VYL>2X*("`@("!4?
XM:&4@+6)?"&X@;W!T:6]N('1E;&QS(%\(;%\(95\(<U\(<R!T;R!U<V4@82!N`
XM;VXM<W1A;F1A<F0@(&)U9F9E<@H@("`@('-I>F4N("`@5&AE<F4@(&%R92!T,
XM=V\@<W1A;F1A<F0@*&1E9F%U;'0I(&)U9F9E<B!S:7IE<RP*("`@("!O;F4@-
XM:7,@=7-E9"!W:&5N(&$@9FEL92!I<R!B96EN9R`@<F5A9"`@86YD("!T:&4@1
XM(&]T:&5R"B`@("`@=VAE;B`@82`@<&EP92`@*'-T86YD87)D("!I;G!U="D@?
XM(&ES("!B96EN9R`@<F5A9"X@(%1H90H@("`@(&-U<G)E;G0@9&5F875L=',@Q
XM87)E(#4@8G5F9F5R<R!F;W(@(&9I;&5S("!A;F0@(#$R("!F;W(*("`@("!P+
XM:7!E<RX@("`H0G5F9F5R<R`@87)E(#$P,C0@8GET97,N*2!4:&4@;G5M8F5R;
XM(%\(;B!S<&5C:2T*("`@("!F:65S(&$@9&EF9F5R96YT(&YU;6)E<B!O9B!B?
XM=69F97)S('1O('5S92X@(%1H92`M8B`@;6%Y"B`@("`@8F4@9F]L;&]W960@-
XM8GD@(F8B+"!I;B!W:&EC:"!C87-E(&]N;'D@=&AE(&9I;&4@9&5F875L=`H@I
XM("`@(&ES(&-H86YG960L(&]R(&)Y(")P(B`@:6X@('=H:6-H("!C87-E("!OW
XM;FQY("!T:&4@('!I<&4*("`@("!D969A=6QT(&ES(&-H86YG960N("!/=&AEU
XM<G=I<V4L(&)O=&@@87)E(&-H86YG960N("!4:&ES"B`@("`@;W!T:6]N(&-A2
XM;FYO="!B92!R97-E="!U<VEN9R!T:&4@)RTG(&-O;6UA;F0@9G)O;2!W:71H:
XM:6X*("`@("!,97-S+@H@("`@(%1H97-E(&1E9F%U;'0@<V5T=&EN9W,@87)E7
XM('!R971T>2!M:6YI;6%L+"!D97-I9VYE9"!F;W(*("`@("!S:71U871I;VYS"
XM('=H97)E(&UE;6]R>2!I<R!R96%L;'D@870@82!P<F5M:75M+B`@*$$@9G5LL
XM;`H@("`@('!A9V4@;V8@=&5X="!O;B!A(&AI9V@M<F5S('-C<F5E;B!C86X@4
XM8F4@;F5A<FQY(#1K+BD@($EF"B`@("`@>6]U(&AA=F4@96YO=6=H(&UE;6]RH
XM>2P@>6]U(&UA>2!W86YT('1O('5S92!A;B!E;G9I<F]N;65N=`H@("`@('9A8
XM<FEA8FQE('1O(')E=FES92!T:&5M('5P=V%R9#L@($D@=7-E("UB9C$U8G`Q0
XM,#`N"@HM8R!A;F0@+4,@(#,M=V%Y('-W:71C:`H@("`@($EF('1H92`M8R!OQ
XM<'1I;VX@:7,@<V5T+"!W:&5N(%\(;%\(95\(<U\(<R!N965D<R!T;R!C:&%NO
XM9V4@=&AE"B`@("`@96YT:7)E("!D:7-P;&%Y+"`@:70@=VEL;"!P86EN="!FW
XM<F]M('1H92!T;W`@;&EN92!D;W=N+@H@("`@($]T:&5R=VES92P@:70@=VELI
XM;"!R97!A:6YT("!T:&4@('-C<F5E;B`@8GD@('-C<F]L;&EN9PH@("`@(&9RJ
XM;VT@('1H92`@8F]T=&]M("!O9B`@=&AE('-C<F5E;BX*("`@("!4:&4@+4,@1
XM;W!T:6]N(&ES(&QI:V4@+6,L(&)U="`@=&AE("!S8W)E96X@(&ES("!C;&5A3
XM<F5D"B`@("`@8F5F;W)E(&ET(&ES(')E<&%I;G1E9"X@(%1H:7,@:7,@=&AE0
XM(&9A<W1E<W0@;W!T:6]N+"!A;F0*("`@("!I<R!T:&4@9&5F875L="!U<&]N@
XM('!R;V=R86T@<W1A<G1U<"X*("`@("!4:&4@+6,@;W(@+4,@;W!T:6]N(&UAL
XM>2!B92!O=F5R<FED9&5N(&9O<B!B86-K=V%R9"!F:6QE"B`@("`@;6]T:6]NX
XM(&)Y(&$@<W5F9FEC:65N=&QY(&QA<F=E('-E='1I;F<@;V8@+6@N("!)9B`M.
XM:"!I<PH@("`@('-E="!L87)G97(@=&AA;B!T:&4@<V-R965N('-I>F4L(&9U%
XM;&P@<&%G92!B86-K=V%R9',*("`@("!M;W9E;65N=',@=VEL;"!S8W)O;&P@6
XM<F5G87)D;&5S<R!O9B!T:&4@+4,@<V5T=&EN9RX*"BUE(&%N9"`M12`@,RUW`
XM87D@<W=I=&-H"B`@("`@56YD97(@+64L('1H92!O;FQY('=A>2!T;R!E>&ETC
XM(&QE<W,@:7,@=FEA('1H92`B<2(@(&-O;2T*("`@("!M86YD+"!O<B!T:&4@-
XM<V-R965N(&-L;W-E(&=A9&=E="X@(%=I=&AO=70@=&AE("UE(&]P=&EO;BP*F
XM("`@("!L97-S(&%U=&]M871I8V%L;'D@97AI=',@:68@>6]U('5S92!A('!A(
XM9V4@9F]R=V%R9"!C;VTM"B`@("`@;6%N9"!W:&5N('EO=2!H879E(&%L<F5AO
XM9'D@<F5A8VAE9"!E;F0M;V8M9FEL92`H9&5F875L="DN"B`@("`@5&AE("U%0
XM(&9L86<@8V%U<V5S(&QE<W,@('1O("!E>&ET(&EF('EO=2!U<V4@86YY(&]F(
XM('1H90H@("`@('5S=6%L(&-O;6UA;F1S("AN;W0@:G5S="!P86=E(&9O<G=AB
XM<F0I(&%F=&5R('EO=2!H879E"B`@("`@<F5A8VAE9"!E;F0M;V8M9FEL92X*&
XM("`@("!296=A<F1L97-S(&]F('1H92!S971T:6YG(&]F('1H:7,@<W=I=&-H?
XM+"!,97-S('=I;&P@<75I=`H@("`@(&EM;65D:6%T96QY('5P;VX@<F5C96EP6
XM="!O9B!A($)214%+('-I9VYA;"X@($)214%+(&UA>0H@("`@(&)E(&=E;F5RI
XM871E9"!B>2!T:&4@06UI9V%$3U,@(F)R96%K(B!C;VUM86YD(&1I<F5C=&5DK
XM(&%T"B`@("`@=&AE($QE<W,@<')O8V5S<RP@;W(@8GD@82!>0R!I;B!T:&4@8
XM:6YV;VMI;F<@0TQ)('=I;F1O=PH@("`@("AI9B!T:&5R92!I<R!O;F4I+B`@C
XM02!>0R!I;B!T:&4@3&5S<R!W:6YD;W<@:7,@:6=N;W)E9"P*("`@("!W:71H?
XM(&$@=V%R;FEN9R!M97-S86=E+@H*+6@@("!.=6UE<FEC"B`@("`@5&AE("UHF
XM(&]P=&EO;B!I;G1E<F%C=',@=VET:"`M8R!T;R!S<&5C:69Y('5N9&5R('=H%
XM870*("`@("!C;VYD:71I;VYS(&)A8VMW87)D<R!S8W)O;&QI;F<@=VEL;"!B2
XM92!U<V5D('1O('5P9&%T92!A"B`@("`@9&ES<&QA>2X@(%1H92`M:"!S971TA
XM:6YG(&ES('1H92!M87AI;75M(&YU;6)E<B!O9B!L:6YE<PH@("`@('1O('-C5
XM<F]L;"`@8F%C:W=A<F1S+B`@268@(&ET("!I<R!N96-E<W-A<GD@('1O(&UO-
XM=F4*("`@("!B86-K=V%R9',@;6]R92!T:&%N('1H:7,@;6%N>2!L:6YE<RP@)
XM;W(@;6]R92!T:&%N(&]N90H@("`@('-C<F5E;F9U;"P@=&AE('-C<F5E;B!I(
XM<R!R97!A:6YT960@:6X@82!F;W)W87)D("!D:7)E8W1I;VXN"B`@("`@0F%C[
XM:W=A<F1S(&UO=F5M96YT<R!O9B!E>&%C=&QY(&]N92!S8W)E96YF=6P@87)EZ
XM(&AA;F1L960*("`@("!A8V-O<F1I;F<@=&\@=&AE("UC('-E='1I;F<L(&EF1
XM('1H92!U<V5R(&QE879E<R`M:"!U;G-E="X*("`@("!)9B`M:"!I<R!L969TG
XM('5N<W!E8VEF:65D(&)Y('1H92!U<V5R+"!I="!D969A=6QT<R!T;R!O;F4*Z
XM("`@("!L97-S('1H86X@=&AE('-C<F5E;B!S:7IE+B`@3VYC92!T:&4@=7-E_
XM<B!S<&5C:69I97,@80H@("`@('9A;'5E+"!H;W=E=F5R+"!T:&%T('9A;'5E;
XM(&ES(')E=&%I;F5D(&9O<B!T:&4@8F%L86YC92!O9@H@("`@('1H92!R=6XN9
XM("!5<V4@+6@P('1O(&1I<V%B;&4@86QL(&)A8VMW87)D<R!S8W)O;&QI;F<N/
XM"@HM;2!A;F0@+4T@(#,M=V%Y('-W:71C:`H@("`@($)Y(&1E9F%U;'0L(%\(;
XM;%\(95\(<U\(<R!P<F]M<'1S('9E<F)O<V5L>2`H+6TI+"!W:71H('1H90H@Z
XM("`@('!E<F-E;G0@:6YT;R!T:&4@9FEL92X@5&AE("U-(&]P=&EO;B!C875SZ
XM97,@7PAL7PAE7PAS7PAS('1O"B`@("`@<')O;7!T(&5V96X@;6]R92!V97)B*
XM;W-E;'D@=&AA;B`M;2X@($EF(&YE:71H97(@+6T@;F]R"B`@("`@+4T@:7,@&
XM<V5T+"!T:&4@<')O;7!T(&ES('9E<GD@<VAO<G0N("!.;W1E('1H870@3&5SF
XM<PH@("`@(&%U=&]M871I8V%L;'D@<VAO<G1E;G,@86YY('!R;VUP="!I9B!T9
XM:&4@<V-R965N(&ES(&YO=`H@("`@('=I9&4@96YO=6=H+@H*+5`@("!3=')I4
XM;F<[(&-O;6UA;F0@;&EN92!O<B!E;G9I<F]N;65N="!O;FQY"B`@("`@5&AE:
XM("U0(&]P=&EO;B!P<F]V:61E<R!A('=A>2!T;R!T86EL;W(@=&AE('1H<F5E;
XM('!R;VUP=`H@("`@('-T>6QE<R`@=&\@>6]U<B!O=VX@<')E9F5R96YC92X@C
XM(%EO=2!W;W5L9"!N;W)M86QL>2!P=70*("`@("!T:&ES(&]P=&EO;B!I;B!Y:
XM;W5R($Q%4U,@96YV:7)O;FUE;G0@('9A<FEA8FQE+"`@<F%T:&5R"B`@("`@D
XM=&AA;B!T>7!E(&ET(&EN('=I=&@@96%C:"!L97-S(&-O;6UA;F0N("!3=6-HE
XM(&%N(&]P=&EO;@H@("`@(&UU<W0@96ET:&5R(&)E('1H92!L87-T(&]P=&EOC
XM;B!I;B!T:&4@3$534R!V87)I86)L92P@;W(*("`@("!B92`@=&5R;6EN871EJ
XM9"`@8GD@(&$@(&1O;&QA<B`@<VEG;BX@("`M4"!F;VQL;W=E9"!B>2!A"B`@<
XM("`@<W1R:6YG(&-H86YG97,@('1H92`@9&5F875L="`@*'-H;W)T*2`@<')OH
XM;7!T("!T;R`@=&AA=`H@("`@('-T<FEN9RX@("`M4&T@(&-H86YG97,@('1H3
XM92`@;65D:75M("`H+6TI('!R;VUP="!T;R!T:&4*("`@("!S=')I;F<L(&%N3
XM9"`M4$T@8VAA;F=E<R`@=&AE("!L;VYG("`H+4TI("!P<F]M<'0N("`@5&AE4
XM"B`@("`@<W1R:6YG("!C;VYS:7-T<R`@;V8@(&$@('-E<75E;F-E("!O9B!LG
XM971T97)S('=H:6-H(&%R90H@("`@(')E<&QA8V5D('=I=&@@8V5R=&%I;B!P^
XM<F5D969I;F5D('-T<FEN9W,L(&%S(&9O;&QO=W,Z"B`@("`@("`@("!&9FEL;
XM92!N86UE"B`@("`@("`@("!F9FEL92!N86UE+"!O;FQY(&]N8V4*("`@("`@4
XM("`@($]F:6QE(&X@;V8@;@H@("`@("`@("`@;V9I;&4@;B!O9B!N+"!O;FQYX
XM(&]N8V4*("`@("`@("`@(&)B>71E(&]F9G-E=`H@("`@("`@("`@<'!E<F-E5
XM;G0@:6YT;R!F:6QE"B`@("`@("`@("!0<&5R8V5N="!I9B!K;F]W;BP@96QS3
XM92!B>71E(&]F9G-E=`H@("`@($%N9VQE(&)R86-K971S+"`\(&%N9"`^+"!M2
XM87D@(&)E("!U<V5D("!T;R`@<W5R<F]U;F0@(&$*("`@("!L:71E<F%L("!SB
XM=')I;F<@('1O("!B92`@:6YC;'5D960@(&EN("!T:&4@<')O;7!T+B`@5&AE_
XM"B`@("`@9&5F875L=',@87)E(")F;R(@9F]R('1H92!S:&]R="!P<F]M<'0L9
XM(")F;U`B("!F;W(@('1H90H@("`@(&UE9&EU;2!P<F]M<'0L(&%N9"`B1F]B6
XM<"(@9F]R('1H92!L;VYG('!R;VUP="X*("`@("!%>&%M<&QE.B!3971T:6YG(
XM('EO=7(@3$534R!V87)I86)L92`@=&\@(")0;49/4"10349/8G`B"B`@("`@'
XM=V]U;&0@(&-H86YG92`@=&AE("!M961I=6T@(&%N9"`@;&]N9R!P<F]M<'1SK
XM('1O(&%L=V%Y<PH@("`@(&EN8VQU9&4@=&AE(&9I;&4@;F%M92!A;F0@(F9I(
XM;&4@;B!O9B!N(B!M97-S86=E+@H@("`@($%N;W1H97(@97AA;7!L93H@4V5T$
XM=&EN9R!Y;W5R($Q%4U,@=F%R:6%B;&4@=&\*("`@("`B;5!M/"TM3&5S<RTM>
XM/D9O4&4B('=O=6QD(&-H86YG92!T:&4@;65D:75M("!P<F]M<'0@('1O"B`@L
XM("`@=&AE("!S=')I;F<@("(M+4QE<W,M+2(@(&9O;&QO=V5D("!B>2!T:&4@_
XM9FEL92!N86UE(&%N9`H@("`@('!E<F-E;G0@:6YT;R!T:&4@9FEL92X@("!)A
XM="`@86QS;R`@<V5L96-T<R`@=&AE("!M961I=6T*("`@("!P<F]M<'0@(&%SX
XM("!T:&4@(&1E9F%U;'0@('!R;VUP="`@*&)E8V%U<V4@;V8@=&AE(&9I<G-TF
XM"B`@("`@(FTB*2X*"BUQ(&%N9"`M42`@,RUW87D@<W=I=&-H"B`@("`@3F]R1
XM;6%L;'DL(&EF(&%N(&%T=&5M<'0@:7,@;6%D92!T;R!S8W)O;&P@<&%S="!T9
XM:&4@(&5N9`H@("`@(&]F("!T:&4@(&9I;&4@(&]R(&)E9F]R92!T:&4@8F5G'
XM:6YN:6YG(&]F('1H92!F:6QE+"!T:&4*("`@("!S8W)E96X@9FQA<VAE<R`H>
XM(G9I<W5A;"!B96QL(BD@=&\@:6YD:6-A=&4@=&AI<R`@9F%C="X*("`@("!4&
XM:&4@("UQ(&]P=&EO;B`@=&5L;',@(%\(;%\(95\(<U\(<R!N;W0@=&\@9FQAB
XM<V@@=&AE('-C<F5E;B!A=`H@("`@('-U8V@@=&EM97,N"B`@("`@179E;B!I?
XM9B`M<2!I<R!G:79E;BP@7PAL7PAE7PAS7PAS('=I;&P@9FQA<V@@=&AE('-C5
XM<F5E;B!O;B!C97)T86EN"B`@("`@;W1H97(@97)R;W)S+"!S=6-H(&%S('1YV
XM<&EN9R!A;B!I;G9A;&ED(&-H87)A8W1E<BX@(%1H90H@("`@("U1(&]P=&EOS
XM;B!T96QL<R!?"&Q?"&5?"'-?"',@=&\@8F4@<75I970@86QL('1H92!T:6UE@
XM.R!T:&%T(&ES+`H@("`@(&YE=F5R("!D;R!T:&4@=FES=6%L(&)E;&PN"@HM4
XM<R`@(#(M=V%Y('-W:71C:`H@("`@(%1H92`M<R!O<'1I;VX@8V%U<V5S("!C`
XM;VYS96-U=&EV92`@8FQA;FL@(&QI;F5S("!T;R`@8F4*("`@("!S<75E97IE^
XM9"!I;G1O(&$@<VEN9VQE(&)L86YK(&QI;F4N("!4:&ES(&ES('5S969U;"!W>
XM:&5N"B`@("`@=FEE=VEN9R!?"&Y?"')?"&]?"&9?"&8@;W5T<'5T+@H*+70@P
XM("`R+7=A>2!S=VET8V@*("`@("!.;W)M86QL>2P@9F]R=V%R9"!S96%R8VAE6
XM<R!S=&%R="`@:G5S="`@869T97(@('1H92`@=&]P"B`@("`@9&ES<&QA>65D6
XM(&QI;F4@*'1H870@:7,L(&%T('1H92!S96-O;F0@9&ES<&QA>65D(&QI;F4IK
XM+@H@("`@(%1H=7,@9F]R=V%R9"!S96%R8VAE<R!I;F-L=61E('1H92`@8W5RN
XM<F5N=&QY("!D:7-P;&%Y960*("`@("!S8W)E96XN("!4:&4@+70@;W!T:6]N0
XM(&-A=7-E<R!F;W)W87)D('-E87)C:&5S('1O('-T87)T"B`@("`@:G5S="!AI
XM9G1E<B!T:&4@8F]T=&]M(&QI;F4@9&ES<&QA>65D+"!T:'5S('-K:7!P:6YG#
XM('1H90H@("`@(&-U<G)E;G1L>2!D:7-P;&%Y960@<V-R965N+@H*+74@86YDI
XM("U5("`S+7=A>2!S=VET8V@*("`@("!)9B!T:&4@+74@;W!T:6]N(&ES(&=IF
XM=F5N+"!B86-K<W!A8V5S("!A<F4@('1R96%T960@(&%S"B`@("`@<')I;G1A2
XM8FQE("!C:&%R86-T97)S.R`@=&AA="`@:7,L("!T:&5Y(&%R92!S96YT('1OV
XM('1H90H@("`@('1E<FUI;F%L('=H96X@=&AE>2!A<'!E87(@:6X@=&AE(&EN[
XM<'5T+@H@("`@($EF('1H92`M52!O<'1I;VX@:7,@9VEV96XL(&)A8VMS<&%C5
XM97,@(&%R92`@<')I;G1E9"`@87,*("`@("!T:&4@='=O(&-H87)A8W1E<B!S?
XM97%U96YC92`B7D@B+@H@("`@($EF(&YE:71H97(@+74@;F]R("U5(&ES(&=I%
XM=F5N+"!B86-K<W!A8V5S('=H:6-H("!A<'!E87(*("`@("!A9&IA8V5N="`@U
XM=&\@(&%N("!U;F1E<G-C;W)E(&-H87)A8W1E<B!A<F4@=')E871E9"!S<&4MO
XM"B`@("`@8VEA;&QY.B!T:&4@=6YD97)L:6YE9"`@=&5X="`@:7,@(&1I<W!L*
XM87EE9"`@=7-I;F<@('1H90H@("`@('1E<FUI;F%L)W,@("!H87)D=V%R92`@8
XM=6YD97)L:6YI;F<@(&-A<&%B:6QI='DN("`@06QS;RP*("`@("!B86-K<W!A)
XM8V5S('=H:6-H(&%P<&5A<B!B971W965N('1W;R`@:61E;G1I8V%L("!C:&%R6
XM86,M"B`@("`@=&5R<R`@87)E("!T<F5A=&5D("!S<&5C:6%L;'DZ("!T:&4@;
XM(&]V97)S=')U8VL@=&5X="!I<PH@("`@('!R:6YT960@=7-I;F<@=&AE('1E9
XM<FUI;F%L)W,@:&%R9'=A<F4@8F]L9&9A8V4@8V%P86)I;"T*("`@("!I='DNB
XM("`@3W1H97(@(&)A8VMS<&%C97,@(&%R92`@9&5L971E9"P@(&%L;VYG('=I^
XM=&@@=&AE"B`@("`@<')E8V5E9&EN9R!C:&%R86-T97(N("!4:&ES(&ES('1H(
XM92!D969A=6QT('-E='1I;F<N"B`@("`@5&AE(')E8V]G;FET:6]N(&]F($%.F
XM4TD@97-C87!E('-E<75E;F-E<R!I<R!A;'-O(&-O;G1R;VQL960*("`@("!B&
XM>2!T:&ES('-W:71C:"X@(%1H92!!3E-)('5N9&5R;&EN:6YG+"!B;VQD9F%CS
XM92P@:71A;&EC+`H@("`@(&%N9"!I;G9E<G-E(')E;F1E<FEN9R!I<R!O;FQY(
XM(&1O;F4@:68@;F5I=&AE<B`M=2!N;W(@+54*("`@("!I<R!S970N"@HM=R`@O
XM(#(M=V%Y('-W:71C:`H@("`@($YO<FUA;&QY+"!?"&Q?"&5?"'-?"',@=7-E&
XM<R`@82`@=&EL9&4@(&-H87)A8W1E<B`@=&\@(')E<')E<V5N=`H@("`@(&QI-
XM;F5S("!P87-T("!T:&4@96YD(&]F('1H92!F:6QE+B`@5&AE("UW(&]P=&EO*
XM;B!C875S97,*("`@("!B;&%N:R!L:6YE<R!T;R!B92!U<V5D(&EN<W1E860NP
XM"@HM>"`@($YU;65R:6,*("`@("!4:&4@+7A?"&X@;W!T:6]N('-E=',@=&%B`
XM('-T;W!S(&5V97)Y(%\(;B`@<&]S:71I;VYS+B`@(%1H90H@("`@(&1E9F%U?
XM;'0@9F]R(%\(;B!I<R`X+@H*+5MZ72!.=6UE<FEC"B`@("`@5VAE;B!G:79EK
XM;B!A(&)A8VMW87)D<R!O<B!F;W)W87)D<R!W:6YD;W<@8V]M;6%N9"P@7PAL@
XM7PAE7PAS7PAS"B`@("`@=VEL;"`@8GD@(&1E9F%U;'0@('-C<F]L;"`@8F%C7
XM:W=A<F1S("!O<B`@9F]R=V%R9',@(&]N90H@("`@('-C<F5E;F9U;"!O9B!L)
XM:6YE<RX@5&AE("UZ7PAN(&]P=&EO;B!C:&%N9V5S('1H92`@9&5F875L=`H@<
XM("`@('-C<F]L;&EN9R!W:6YD;W<@<VEZ92!T;R!?"&X@;&EN97,L(&]R(&]N]
XM92`@<V-R965N9G5L+`H@("`@('=H:6-H979E<B!I<R!S;6%L;&5R+B`@3F]TR
XM92`@=&AA="!T:&4@(GHB(&ES(&]P=&EO;F%L(&9O<@H@("`@(&-O;7!A=&EBW
XM:6QI='D@=VET:"!?"&U?"&]?"')?"&4N("!)9B!T:&4@<V-R965N(&ES(')E'
XM<VEZ960*("`@("!S;R!T:&%T('1H92`M>B!O<'1I;VX@=V]U;&0@8F4@;&%RN
XM9V5R('1H86X@82!S8W)E96YF=6PL"B`@("`@+7H@:7,@<F5S970@=&\@=&AI5
XM<R!S;6%L;&5R('-C<F5E;B!S:7IE+B`@268@=&AE('-C<F5E;@H@("`@(&ESB
XM('1H96X@96YL87)G960@=&\@82!S:7IE(&=R96%T97(@=&AA;B`M>BP@=&AEY
XM('!R979I;W5S;'D*("`@("!S<&5C:69I960@=F%L=64@:7,@<F5S=&]R960N'
XM"@HK("`@(%-T<FEN9PH@("`@($EF(&$@8V]M;6%N9"!L:6YE(&]P=&EO;B!B2
XM96=I;G,@=VET:"`K+"`@=&AE("!R96UA:6YD97(*("`@("!O9B`@=&AA="`@1
XM;W!T:6]N("!I<R`@=&%K96X@=&\@8F4@86X@:6YI=&EA;"!C;VUM86YD('1OM
XM"B`@("`@7PAL7PAE7PAS7PAS+B`@1F]R(&5X86UP;&4L("M'('1E;&QS(%\(G
XM;%\(95\(<U\(<R!T;R!S=&%R="!A="`@=&AE("!E;F0*("`@("!O9B`@=&AEJ
XM(&9I;&4@<F%T:&5R('1H86X@=&AE(&)E9VEN;FEN9RP@86YD("LO>'EZ('1E`
XM;&QS"B`@("`@:70@=&\@<W1A<G0@870@=&AE(&9I<G-T("!O8V-U<F5N8V4@8
XM(&]F("`B>'EZ(B`@:6X@('1H90H@("`@(&9I;&4N("`@($%S("`@82`@('-PL
XM96-I86P@(&-A<V4L("`K/&YU;6)E<CX@(&%C=',@(&QI:V4*("`@("`K/&YUX
XM;6)E<CYG.R!T:&%T(&ES+"`@:70@('-T87)T<R`@=&AE("!D:7-P;&%Y("!A5
XM="`@=&AE"B`@("`@<W!E8VEF:65D("!L:6YE("!N=6UB97(@("AH;W=E=F5RD
XM+"!S964@=&AE(&-A=F5A="!U;F1E<@H@("`@('1H92`B9R(@8V]M;6%N9"!AR
XM8F]V92DN("!)9B!T:&4@;W!T:6]N('-T87)T<R!W:71H("`K*RP*("`@("!T)
XM:&4@:6YI=&EA;"!C;VUM86YD(&%P<&QI97,@=&\@979E<GD@9FEL92!B96ENP
XM9R!V:65W960L"B`@("`@;F]T(&IU<W0@=&AE(&9I<G-T(&]N92X@(%1H92`K]
XM(&-O;6UA;F0@9&5S8W)I8F5D('!R979I+0H@("`@(&]U<VQY("!M87D@(&%LQ
XM<V\@(&)E('5S960@=&\@<V5T("AO<B!C:&%N9V4I(&%N(&EN:71I86P*("`@D
XM("!C;VUM86YD(&9O<B!E=F5R>2!F:6QE+@H*+5M.+$XL3BQ.70H@("`@($EF-
XM(&%N(&]P=&EO;B!O9B!T:&ES(&9O<FT@87!P96%R<R!O;B!T:&4@8V]M;6%N.
XM9"!L:6YE+`H@("`@($QE<W,@=7-E<R!T:&4@:6YF;W)M871I;VX@=&\@<VEZ9
XM92!A;F0@<&]S:71I;VX@:71S(&1I<W!L87D*("`@("!W:6YD;W<N("!!;GD@+
XM;V8@=&AE(&9O=7(@=F%L=65S(&UA>2!B92!O;6ET=&5D+"!D969A=6QT:6YG5
XM"B`@("`@=&\@,"X@($EF(&]N92!O<B!M;W)E(&]F('1H92!L87-T('9A;'5E7
XM<R!I<R!O;6ET=&5D+"!T:&4*("`@("!T<F%I;&EN9R!C;VUM87,@;6%Y(&)E$
XM(&]M:71T960@86QS;RX@($$@=F%L=64@;V8@>F5R;R!I;@H@("`@(&5I=&AE6
XM<B!O9B!T:&4@;&%S="!T=V\@<&]S:71I;VYS(&-A=7-E<R!,97-S('1O('5S$
XM92!M87AI;75M"B`@("`@<V-R965N(&1I;65N<VEO;G,N("!4:&4@9F]U<B!V'
XM86QU97,@:6YD:6-A=&4@:6X@;W)D97(@=&AE"B`@("`@;&5F="!E9&=E+"!T9
XM;W`@961G92P@=VED=&@L(&%N9"!H96EG:'0@;V8@=VEN9&]W('1O('5S92X*M
XM("`@("!)9B!A;GD@;V8@=&AE<V4@87)E(&YE9V%T:79E+"!T:&5Y(&%R92!TB
XM86ME;B!A<R!R96QA=&EV90H@("`@('1O('1H92!B;W1T;VT@<FEG:'0@8V]R4
XM;F5R(&]F('1H92!W;W)K8F5N8V@@<V-R965N+B`@5&AU<RP*("`@("`M6S`LJ
XM,3(L+"TQ,#!=('=I;&P@;W!E;B!A(&9U;&PM=VED=&@@=VEN9&]W(&5X=&5N=
XM9&EN9R!F<F]M"B`@("`@,3(@<&EX96QS(&9R;VT@=&AE('1O<"!T;R`Q,#`@T
XM<&EX96QS(&9R;VT@=&AE(&)O='1O;2!O9@H@("`@('1H92!S8W)E96XN(%-I)
XM;6EL87)L>2P@+5LM-#`P+#`L-#`P+#!=('=O=6QD(&]P96X@82!F=6QL+0H@L
XM("`@(&AE:6=H="!W:6YD;W<@=VAI8V@@:7,@9FQU<V@@86=A:6YS="!T:&4@J
XM<FEG:'0@961G92!O9B!T:&4*("`@("!S8W)E96X@86YD(#0P,"!P:7AE;',@O
XM=VED92X@($EF('1H92!W:6YD;W<@<W!E8VEF:65D('=O=6QD"B`@("`@9F%L3
XM;"!O9F8@86X@961G92!O9B!T:&4@<V-R965N+"!O<B!W;W5L9"!G;R!L97-SF
XM('1H86X@80H@("`@(&-E<G1A:6X@;6EN:6UU;2!S:7IE+"!T:&4@=VEN9&]W8
XM(&ES('-I;&5N=&QY(&-O97)C960@8F%C:PH@("`@(&EN=&\@8V]N9F]R;6ET+
XM>2X*"E\(4E\(95\(9U\(=5\(;%\(85\(<B!?"$5?"'A?"'!?"')?"&5?"'-?^
XM"'-?"&E?"&]?"&X@7PA07PAA7PAT7PAT7PAE7PAR7PAN(%\(35\(85\(=%\(C
XM8U\(:%\(:5\(;E\(9PH*3&5S<R!U<V5S(%)E9W5L87(@17AP<F5S<VEO;G,L1
XM(&EN('1H92!S='EL92!O9B!5;FEX("=E9"<L(&9O<@IS<&5C:69Y:6YG('-E?
XM87)C:&5S+B`@5VAI;&4@=&AE<V4@97AP<F5S<VEO;G,@8V%N(&%P<&5A<B!QU
XM=6ET90IC<GEP=&EC+"!T:&5Y(&%R92!V97)Y('!O=V5R9G5L('1O;VQS(&9O=
XM<B!L;V-A=&EN9R!T97AT('=I=&AI;@IA(&1O8W5M96YT+@H*06YY('!A='1E-
XM<FX@8V]N<VES=&EN9R!O;FQY(&]F(&QE='1E<G,L(&YU;6)E<G,L(&%N9"!S5
XM<&%C97,@=VEL;`IS:6UP;'D@<V5A<F-H(&9O<B!T:&4@9VEV96X@<&%T=&5R3
XM;BX@($)U="!Y;W4@8V%N('5S92!O;F4@;W(*;6]R92!O9B!T:&4@;65T86-H+
XM87)A8W1E<G,@6UTN7B0H*7PJ*R!T;R!E;F=I;F5E<B!V97)Y"G-O<&AI<W1I2
XM8V%T960@<V5A<F-H97,N("!4:&4@)RXG('-T86YD<R!F;W(@86YY('-I;F=L3
XM92!C:&%R86-T97(L"F%N9"`G>"HG('-T86YD<R!F;W(@,"!O<B!M;W)E(&]C5
XM8W5R86YC97,@;V8@>"`H<V\@)W@N*GDG('=O=6QD"FUA=&-H(&%N>71H:6YGF
XM('1H870@<W1A<G1E9"!W:71H('@@86YD(&5N9&5D('=I=&@@>2DN("`G>"LG,
XM"G=O<FMS('1H92!S86UE('=A>2P@9F]R(#$@;W(@;6]R92!O8V-U<F%N8V5S6
XM(&]F('@N("`G>#\G(&UA=&-H97,*,"!O<B`Q(&]C8W5R86YC97,@;V8@>"`HL
XM:2YE+B`G>"<@;W(@;F]T:&EN9RDN("`G6V%B8UTG(&UA=&-H97,*86YY('-I^
XM;F=L92!O8V-U<F%N8V4@;V8@)V$G+"`G8B<L(&]R("=C)RX@("=;7F%B8UTGO
XM(&UA=&-H97,@86YY"G-I;F=L92!C:&%R86-T97(@97AC97!T("=A)RP@)V(GZ
XM+"!O<B`G8R<N("`G6V$M;5TG(&UA=&-H97,@86YY"G-I;F=L92!C:&%R86-T<
XM97(@:6X@=&AE(')A;F=E("=A)R!T:')O=6=H("=M)R!I;F-L=7-I=F4N("`GN
XM7G@G"F9I;F1S('@@;VYL>2!A="!T:&4@8F5G:6YN:6YG(&]F(&$@;&EN93L@5
XM)W@D)R!O;FQY(&%T('1H92!E;F0@;V8*82!L:6YE+B`@)WA\>2<@;6%T8VAE<
XM<R!E:71H97(@>"!O<B!Y+B`@5&AE('9A<FEO=7,@<&EE8V5S(&-A;B!B90IC]
XM;VUB:6YE9"P@;V8@8V]U<G-E+"!A;F0@9W)O=7!E9"!W:71H('!A<F5N=&AE8
XM<V5S+B`@1F]R(&EN<W1A;F-E+`HG*%M!85UN>7Q;165=86-H*2`K;V8@>6]UK
XM)R!W;W5L9"!F:6YD(&%N>2!P:')A<V4@8F5G:6YN:6YG('=I=&@*)V%N>2<@K
XM;W(@)V5A8V@G("AP;W-S:6)L>2!C87!I=&%L:7IE9"D@9F]L;&]W960@8GD@'
XM;VYE(&]R(&UO<F4*8FQA;FMS+"!F;VQL;W=E9"!B>2`G;V8@>6]U)RX@)R`H[
XM8V%N*3]N;W0@)R!M871C:&5S(&5I=&AE<B`G;F]T)PIO<B`G8V%N;F]T)RP@_
XM8G5T(&YO="`G;F]T:&EN9R<@;W(@)V-A;F-E;"<N("`G6UYA+7I!+5I=:5M>3
XM82UZ02U:72<*9FEN9',@86QL(&]C8W5R86YC97,@;V8@82!V87)I86)L92`GT
XM:2<@:6X@82!P<F]G<F%M+"!B=70@9&]E<R!N;W0*9FEN9"`G:2<@96UB961DV
XM960@:6X@;W1H97(@=F%R:6%B;&4@;F%M97,@;W(@=V]R9',N("!4;R!M871CB
XM:"!A"FUE=&%C:&%R86-T97(@;&ET97)A;&QY+"!P<F5C961E(&ET('=I=&@@6
XM82!B86-K<VQA<V@[(&4N9RX@)UPN("!<*B<*=V]U;&0@;6%T8V@@82!P97)IA
XM;V0@9F]L;&]W960@8GD@='=O('-P86-E<R!A;F0@86X@87-T97)I<VLN"@H*W
XM7PA/7PAT7PAH7PAE7PAR(%\(0U\(;U\(;E\(<U\(:5\(9%\(95\(<E\(85\(#
XM=%\(:5\(;U\(;E\(<PH*3&5S<R!I<R!R97-I9&5N=&%B;&4L('-O(&EF('EOG
XM=2!U<V4@:70@82!L;W0@>6]U(&UA>2!W:7-H('1O(&%D9`II="!T;R!Y;W5RS
XM('-Y<W1E;2!R97-I9&5N="!L:7-T+B`@5&\@9&\@=&AI<RP@;6%K92!S=7)ED
XM('1H92!P=7)E"F)I="!I<R!S970@:6X@=&AE(&9I;&4@<')O=&5C=&EO;B!CP
XM;V1E<R`H<')O=&5C="`K<"!,97-S*2X@(%1H96X*861D('1H92!L:6YE(")R<
XM97-I9&5N="!C.DQE<W,B("AO<B!W:&%T979E<B!Y;W5R('!A=&@@:7,I('1OU
XM('EO=7(*<W1A<G1U<"US97%U96YC92X*"DQE<W,@=7-E<R!I;G1E<FYA;&QYM
XM($%S8VEI(&-H87)A8W1E<G,@,"!A;F0@,3(Y+3$S-BX@(%-I;F-E('1H97-E(
XM"F%R92!N;VXM<')I;G1I;F<@8VAA<F%C=&5R<RP@:70@<VAO=6QD;B=T(&UA4
XM:V4@86YY(&1I9F9E<F5N8V4*=6YD97(@;F]R;6%L(&-I<F-U;7-T86YC97,NV
XM("!#:&%R86-T97(@,"!W:6QL(&1I<W!L87D@87,@)T`G(&%N9`HQ,CDM,3,VM
XM(&%S(%X_+@H*"E\(5U\(:%\(95\(;B!?"'5?"'-?"&5?"&0@7PAO7PAN(%\(J
XM<U\(=%\(85\(;E\(9%\(85\(<E\(9"!?"&E?"&Y?"'!?"'5?"'0@*%\(<E\(]
XM85\(=%\(:%\(95\(<B!?"'1?"&A?"&%?"&X@7PAA("!?"&9?"&E?"&Q?"&4ID
XM+"`@7PAY7PAO7PAU("!?"&-?"&%?"&X*7PAM7PAO7PAV7PAE("!?"&)?"&%?R
XM"&-?"&M?"'=?"&%?"')?"&1?"',@(%\(;U\(;E\(;%\(>2!?"&$@7PAF7PAID
XM7PAN7PAI7PAT7PAE(%\(85\(;5\(;U\(=5\(;E\(="P@7PAC7PAO7PAR7PAR(
XM7PAE7PAS7PAP7PAO7PAN7PAD7PAI7PAN7PAG(%\(=%\(;R!?"'1?"&A?"&%?H
XM"'0*7PAP7PAO7PAR7PAT7PAI7PAO7PAN(%\(;U\(9B!?"'1?"&A?"&4@7PAFH
XM7PAI7PAL7PAE(%\(=U\(:%\(:5\(8U\(:"!?"&E?"',@7PAS7PAT7PAI7PALG
XM7PAL(%\(8E\(=5\(9E\(9E\(95\(<E\(95\(9"X@(%\(5%\(:%\(92`M7PAB(
XM("!?"&]?"'!?"'1?"&E?"&]?"&X*7PAM7PAA7PAY(%\(8E\(92!?"'5?"'-?S
XM"&5?"&0@7PAT7PAO(%\(95\(>%\(<%\(85\(;E\(9"!?"'1?"&A?"&4@7PAB2
XB7PAU7PAF7PAF7PAE7PAR(%\(<U\(<%\(85\(8U\(92X*"G1??
X``
Xend
Xsize 20689
END_OF_FILE
if test 29005 -ne `wc -c <'Less1.4Z/Less.doc.uu'`; then
echo shar: \"'Less1.4Z/Less.doc.uu'\" unpacked with wrong size!
fi
# end of 'Less1.4Z/Less.doc.uu'
fi
if test -f 'Less1.4Z/src/command.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'Less1.4Z/src/command.c'\"
else
echo shar: Extracting \"'Less1.4Z/src/command.c'\" \(25166 characters\)
sed "s/^X//" >'Less1.4Z/src/command.c' <<'END_OF_FILE'
X/*
X * User-level command processor.
X */
X
X#ifdef AMIGA
X/* Compile with -HPreHeader.q to get "less.h"! */
X#else
X#include "less.h"
X#endif
X
X#include "position.h"
X#include <setjmp.h>
X
Xextern jmp_buf main_loop;
Xextern int erase_char, kill_char;
Xextern int pr_type;
Xextern int sigs;
Xextern int ispipe;
Xextern int quit_at_eof;
Xextern int hit_eof;
Xextern int sc_width, sc_height;
Xextern int sc_window;
Xextern char *first_cmd;
Xextern char *every_first_cmd;
Xextern char version[];
Xextern char current_file[];
Xextern char *editor;
X
X#ifdef AMIGA
Xextern int scroll;
Xextern curr_ac, ac; /* local argc for file names */
Xextern char **av;
Xint user_errors = 0;
X#endif
X
Xstatic char cmdbuf[90]; /* Buffer for holding a multi-char command */
X#if SHELL_ESCAPE
Xstatic char shellcmd[200]; /* For holding last shell command for "!!" */
X#endif
Xstatic char *cp; /* Pointer into cmdbuf */
Xstatic int cmd_col; /* Current column of the multi-char command */
Xstatic char mcc; /* The multi-char command letter (e.g. '/') */
Xstatic char last_mcc; /* The previous mcc */
X#ifdef AMIGA
Xint screen_trashed; /* The screen has been overwritten */
X#else
Xstatic int screen_trashed; /* The screen has been overwritten */
X#endif
X
X/* Prototypes for functions defined in command.c */
X
Xstatic int cmd_erase __PROTO((void));
Xstatic int cmd_char __PROTO((int c));
Xstatic int cmd_int __PROTO((void));
Xstatic void cmd_exec __PROTO((void));
Xstatic void prompt __PROTO((void));
Xstatic int getcc __PROTO((void));
X
X
X/*
X * Reset command buffer (to empty).
X */
X#ifdef __STDC__
Xvoid cmd_reset (void)
X#else
Xcmd_reset()
X#endif
X{
X cp = cmdbuf;
X}
X
X/*
X * Backspace in command buffer.
X */
X#ifdef __STDC__
Xstatic int cmd_erase (void)
X#else
X static int
Xcmd_erase()
X#endif
X{
X if (cp == cmdbuf)
X /*
X * Backspace past beginning of the string:
X * this usually means abort the command.
X */
X return (1);
X
X if (control_char(*--cp))
X {
X /*
X * Erase an extra character, for the carat.
X */
X backspace();
X cmd_col--;
X }
X backspace();
X cmd_col--;
X return (0);
X}
X
X/*
X * Set up the display to start a new multi-character command.
X */
X#ifdef __STDC__
Xvoid start_mcc (int c)
X#else
Xstart_mcc(c)
X int c;
X#endif
X{
X mcc = c;
X lower_left();
X clear_eol();
X putchr(mcc);
X cmd_col = 1;
X}
X
X/*
X * Process a single character of a multi-character command, such as
X * a number, or the pattern of a search command.
X */
X#ifdef __STDC__
Xstatic int cmd_char (int c)
X#else
X static int
Xcmd_char(c)
X int c;
X#endif
X{
X if (c == erase_char)
X {
X if (cmd_erase())
X return (1);
X } else if (c == kill_char)
X {
X /* {{ Could do this faster, but who cares? }} */
X while (cmd_erase() == 0)
X ;
X } else
X {
X /*
X * Append the character to the string,
X * if there is room in the buffer and on the screen.
X */
X if (cp < &cmdbuf[sizeof(cmdbuf)-1] && cmd_col < sc_width-3)
X {
X *cp++ = c;
X if (control_char(c))
X {
X putchr('^');
X cmd_col++;
X c = carat_char(c);
X }
X putchr(c);
X cmd_col++;
X } else
X bell();
X }
X return (0);
X}
X
X/*
X * Return the number currently in the command buffer.
X */
X#ifdef __STDC__
Xstatic int cmd_int (void)
X#else
X static int
Xcmd_int()
X#endif
X{
X *cp = '\0';
X cp = cmdbuf;
X return (atoi(cmdbuf));
X}
X
X/*
X * Move the cursor to lower left before executing a command.
X * This looks nicer if the command takes a long time before
X * updating the screen.
X */
X#ifdef __STDC__
Xstatic void cmd_exec (void)
X#else
X static void
Xcmd_exec()
X#endif
X{
X lower_left();
X flush();
X}
X
X/*
X * Display the appropriate prompt.
X */
X#ifdef __STDC__
Xstatic void prompt (void)
X#else
X static void
Xprompt()
X#endif
X{
X register char *p;
X
X if (first_cmd != NULL && *first_cmd != '\0')
X /*
X * No prompt necessary if commands are from first_cmd
X * rather than from the user.
X */
X return;
X
X /*
X * If nothing is displayed yet, display starting from line 1.
X */
X if (position(TOP) == NULL_POSITION)
X jump_back(1);
X else if (screen_trashed)
X repaint();
X screen_trashed = 0;
X
X /*
X * Select the proper prompt and display it.
X */
X lower_left();
X clear_eol();
X p = pr_string();
X if (p == NULL)
X putchr(':');
X else
X {
X#ifdef AMIGA
X if ( strlen(p) > sc_width )
X screen_trashed = 1;
X#endif
X so_enter();
X putstr(p);
X so_exit();
X }
X}
X
X/*
X * Get command character.
X * The character normally comes from the keyboard,
X * but may come from the "first_cmd" string.
X */
X#ifdef __STDC__
Xstatic int getcc (void)
X#else
X static int
Xgetcc()
X#endif
X{
X if (first_cmd == NULL)
X return (getchr());
X
X if (*first_cmd == '\0')
X {
X /*
X * Reached end of first_cmd input.
X */
X first_cmd = NULL;
X if (cp > cmdbuf && position(TOP) == NULL_POSITION)
X {
X /*
X * Command is incomplete, so try to complete it.
X * There are only two cases:
X * 1. We have "/string" but no newline. Add the \n.
X * 2. We have a number but no command. Treat as #g.
X * (This is all pretty hokey.)
X */
X if (mcc != ':')
X /* Not a number; must be search string */
X return ('\n');
X else
X /* A number; append a 'g' */
X return ('g');
X }
X return (getchr());
X }
X return (int)(*first_cmd++);
X}
X
X/*
X * Main command processor.
X * Accept and execute commands until a quit command, then return.
X */
X#ifdef __STDC__
Xvoid commands (void)
X#else
X public void
Xcommands()
X#endif
X{
X register int c;
X register int n;
X#ifndef AMIGA
X register int scroll = 10;
X#endif
X
X last_mcc = 0;
X n = 0;
X setjmp(main_loop);
X mcc = 0;
X
X for (;;)
X {
X /*
X * Display prompt and accept a character.
X */
X psignals(); /* See if any signals need processing */
X
X#ifdef AMIGA
X if (quit_at_eof == 2 && hit_eof > 1)
X#else
X if (quit_at_eof && (quit_at_eof + hit_eof) > 2)
X#endif
X /*
X * After hitting end-of-file for the second time,
X * automatically advance to the next file.
X * If there are no more files, quit.
X */
X next_file(1);
X cmd_reset();
X prompt();
X c = getcc();
X
X again:
X if (sigs)
X continue;
X if (mcc)
X {
X /*
X * We are in a multi-character command.
X * All chars until newline go into the command buffer.
X * (Note that mcc == ':' is a special case that
X * means a number is being entered.)
X */
X if (mcc != ':' && (c == '\n' || c == '\r'))
X {
X char *p;
X static char fcbuf[100];
X
X /*
X * Execute the command.
X */
X *cp = '\0';
X cmd_exec();
X switch (mcc)
X {
X case '/': case '?':
X search(mcc, cmdbuf, n);
X break;
X case '+':
X for (p = cmdbuf; *p == '+' || *p == ' '; p++) ;
X if (*p == '\0')
X every_first_cmd = NULL;
X else
X {
X strtcpy(fcbuf, p, sizeof(fcbuf));
X every_first_cmd = fcbuf;
X }
X break;
X case '-':
X toggle_option(cmdbuf);
X break;
X case 'E':
X /*
X * Ignore leading spaces
X * in the filename.
X */
X for (p = cmdbuf; *p == ' '; p++) ;
X edit(glob(p));
X break;
X#if SHELL_ESCAPE
X case '!':
X /*
X * !! just uses whatever is in shellcmd.
X * Otherwise, copy cmdbuf to shellcmd,
X * replacing any '%' with the current
X * file name.
X */
X if (*cmdbuf != '!')
X {
X register char *fr, *to;
X to = shellcmd;
X for (fr = cmdbuf;
X *fr != '\0'; fr++)
X {
X if (*fr != '%')
X *to++ = *fr;
X else
X {
X strcpy(to,
X current_file);
X to += strlen(to);
X }
X }
X *to = '\0';
X }
X lsystem(shellcmd);
X screen_trashed = 1;
X error("!done");
X break;
X#endif
X }
X mcc = 0;
X } else
X {
X if (mcc == ':' && (c < '0' || c > '9') &&
X c != erase_char && c != kill_char)
X {
X /*
X * This is not part of the number
X * we were entering. Process
X * it as a regular character.
X */
X mcc = 0;
X goto again;
X }
X
X /*
X * Append the char to the command buffer.
X */
X if (cmd_char(c))
X {
X /* Abort the multi-char command. */
X mcc = 0;
X continue;
X }
X c = getcc();
X goto again;
X }
X } else switch (c)
X {
X case '0': case '1': case '2': case '3': case '4':
X case '5': case '6': case '7': case '8': case '9':
X /*
X * First digit of a number.
X */
X start_mcc(':');
X goto again;
X
X case 'f':
X case ' ':
X case CONTROL('F'):
X#ifdef AMIGA
X case CONTROL('V'):
X#endif
X /*
X * Forward one screen.
X */
X#ifdef AMIGA
X if (hit_eof && quit_at_eof == 1)
X {
X if (curr_ac+1 == ac)
X return;
X else
X next_file(1);
X } else
X#endif
X {
X n = cmd_int();
X if (n <= 0)
X n = sc_window;
X cmd_exec();
X forward(n, 1);
X }
X break;
X
X case 'b':
X#ifdef AMIGA
X case 'B':
X#endif
X case CONTROL('B'):
X /*
X * Backward one screen.
X */
X n = cmd_int();
X if (n <= 0)
X n = sc_window;
X cmd_exec();
X backward(n, 1);
X break;
X
X case 'e':
X case 'j':
X case '\r':
X case '\n':
X case CONTROL('E'):
X#ifdef AMIGA
X case CONTROL('N'):
X#endif
X /*
X * Forward N (default 1) line.
X */
X n = cmd_int();
X if (n <= 0)
X n = 1;
X cmd_exec();
X forward(n, 0);
X break;
X
X case 'y':
X case 'k':
X case CONTROL('K'):
X case CONTROL('Y'):
X#ifdef AMIGA
X case '\b':
X case CONTROL('P'):
X#endif
X /*
X * Backward N (default 1) line.
X */
X n = cmd_int();
X if (n <= 0)
X n = 1;
X cmd_exec();
X backward(n, 0);
X break;
X
X case 'd':
X case CONTROL('D'):
X /*
X * Forward N lines
X * (default same as last 'd' or 'u' command).
X */
X n = cmd_int();
X if (n > 0)
X scroll = n;
X cmd_exec();
X forward(scroll, 0);
X break;
X
X case 'u':
X case CONTROL('U'):
X /*
X * Backward N lines
X * (default same as last 'd' or 'u' command).
X */
X n = cmd_int();
X if (n > 0)
X scroll = n;
X cmd_exec();
X backward(scroll, 0);
X break;
X
X case 'R':
X /*
X * Flush buffers, then repaint screen.
X * Don't flush the buffers on a pipe!
X */
X if (!ispipe)
X ch_init(0);
X /* Fall thru */
X case 'r':
X case CONTROL('R'):
X case CONTROL('L'):
X /*
X * Repaint screen.
X */
X repaint();
X break;
X
X case 'g':
X#ifdef AMIGA
X case '<':
X#endif
X /*
X * Go to line N, default beginning of file.
X */
X n = cmd_int();
X if (n <= 0)
X n = 1;
X cmd_exec();
X jump_back(n);
X break;
X
X case 'p':
X case '%':
X /*
X * Go to a specified percentage into the file.
X */
X n = cmd_int();
X if (n < 0)
X n = 0;
X if (n > 100)
X n = 100;
X cmd_exec();
X jump_percent(n);
X break;
X
X case 'G':
X#ifdef AMIGA
X case '>':
X#endif
X /*
X * Go to line N, default end of file.
X */
X n = cmd_int();
X cmd_exec();
X if (n <= 0)
X jump_forw();
X else
X jump_back(n);
X break;
X
X case '=':
X case CONTROL('G'):
X /*
X * Print file name, etc.
X */
X error(eq_message());
X break;
X
X case 'V':
X /*
X * Print version number, without the "@(#)".
X */
X error(version+4);
X break;
X
X case 'q':
X#ifdef AMIGA
X case 'Q':
X#endif
X /*
X * Exit.
X */
X /*setjmp(main_loop);*/
X quit();
X
X#ifdef AMIGA
X case CONTROL('S'):
X c = '/';
X /* v v v fall through v v v */
X#endif
X case '/':
X case '?':
X /*
X * Search for a pattern.
X * Accept chars of the pattern until \n.
X */
X n = cmd_int();
X if (n <= 0)
X n = 1;
X start_mcc(c);
X last_mcc = c;
X c = getcc();
X goto again;
X
X case 'n':
X /*
X * Repeat previous search.
X */
X n = cmd_int();
X if (n <= 0)
X n = 1;
X start_mcc(last_mcc);
X cmd_exec();
X search(mcc, (char *)NULL, n);
X mcc = 0;
X break;
X#ifdef AMIGA
X
X /* I didn't want a separate help file because people might
X not donwload it and then where would we be */
X case 'H':
X case 'h':
X screen_trashed = 1;
X help();
X break;
X#else
X case 'H':
X /*
X * Help.
X */
X lower_left();
X clear_eol();
X putstr("help");
X cmd_exec();
X help();
X screen_trashed = 1;
X break;
X#endif
X
X case 'E':
X /*
X * Edit a new file. Get the filename.
X */
X cmd_reset();
X start_mcc('E');
X putstr("xamine: "); /* This looks nicer */
X cmd_col += 8;
X c = getcc();
X goto again;
X
X case '!':
X#if SHELL_ESCAPE
X /*
X * Shell escape.
X */
X cmd_reset();
X start_mcc('!');
X c = getcc();
X goto again;
X#else
X error("Command not available");
X break;
X#endif
X
X case 'v':
X#if EDITOR
X if (ispipe)
X {
X error("Cannot edit standard input");
X break;
X }
X sprintf(cmdbuf, "%s %s", editor, current_file);
X lsystem(cmdbuf);
X ch_init(0);
X screen_trashed = 1;
X break;
X#else
X error("Command not available");
X break;
X#endif
X
X case 'N':
X /*
X * Examine next file.
X */
X n = cmd_int();
X if (n <= 0)
X n = 1;
X next_file(n);
X break;
X
X case 'P':
X /*
X * Examine previous file.
X */
X n = cmd_int();
X if (n <= 0)
X n = 1;
X prev_file(n);
X break;
X
X case '-':
X /*
X * Toggle a flag setting.
X */
X cmd_reset();
X start_mcc('-');
X c = getcc();
X goto again;
X
X case '+':
X cmd_reset();
X start_mcc('+');
X c = getcc();
X goto again;
X
X case 'm':
X /*
X * Set a mark.
X */
X lower_left();
X clear_eol();
X putstr("mark: ");
X c = getcc();
X if (c == erase_char || c == kill_char)
X break;
X setmark(c);
X break;
X
X case '\'':
X /*
X * Go to a mark.
X */
X lower_left();
X clear_eol();
X putstr("goto mark: ");
X c = getcc();
X if (c == erase_char || c == kill_char)
X break;
X gomark(c);
X break;
X
X default:
X#ifdef AMIGA
X if (++user_errors > 2) {
X lower_left();
X clear_eol();
X so_enter();
X putchr(c);
X putstr(" is an Invalid Command, Type H for help, or Q to quit");
X so_exit();
X /* give him some time to read it, and three more trys */
X Delay(3 * 50L);
X user_errors = 0;
X } else
X#endif
X bell();
X break;
X }
X }
X}
END_OF_FILE
if test 25166 -ne `wc -c <'Less1.4Z/src/command.c'`; then
echo shar: \"'Less1.4Z/src/command.c'\" unpacked with wrong size!
fi
# end of 'Less1.4Z/src/command.c'
fi
echo shar: End of archive 5 \(of 7\).
cp /dev/null ark5isdone
MISSING=""
for I in 1 2 3 4 5 6 7 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 7 archives.
rm -f ark[1-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0
--
Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
Mail comments to the moderator at <amiga-request@uunet.uu.net>.
Post requests for sources, and general discussion to comp.sys.amiga.misc.